package com.relytosoft.mizar.analyze.face.api.pojo.query;

import com.baomidou.mybatisplus.annotation.TableField;
import com.relytosoft.dubhe.common.core.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
import java.util.List;


/**
 * @Author: zyc
 * @version: v1.0
 * @Date: 2022/5/13 9:57
 */
@ApiModel("AyFaceTaskSonQuery")
public class AyFaceTaskSonQuery extends BaseEntity {

    private static final long serialVersionUID = 1L;


    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    @TableField("ID")
    private Integer id;

    /**
     * 主任务ID
     */
    @ApiModelProperty(value = "主任务ID", required = true)
    @TableField("STRUCTURE_TASK_ID")
    @NotBlank(message = "主任务ID不能为空")
    private Integer faceTaskId;

    /**
     * 子任务ID;对应业务引擎返回的taskId
     */
    @ApiModelProperty(value = "子任务ID;对应业务引擎返回的taskId")
    @TableField("TASK_ID")
    private String taskId;

    /**
     * 设备ID
     */
    @ApiModelProperty(value = "设备ID")
    private List<String> cameraIds;


    /**
     * 任务类型;1：实时任务，2：离线视频任务，3：离线文件任务
     */
    @ApiModelProperty(value = "任务类型;1：实时任务，2：离线视频任务，3：离线文件任务")
    @TableField("TYPE")
    private Integer type;

    /**
     * 任务开始时间;(实时任务、离线视频任务)
     */
    @ApiModelProperty(value = "任务开始时间;(实时任务、离线视频任务)")
    @TableField("BEGIN_TIME")
    private LocalDateTime beginTime;

    /**
     * 任务结束时间;(实时任务、离线视频任务)
     */
    @ApiModelProperty(value = "任务结束时间;(实时任务、离线视频任务)")
    @TableField("END_TIME")
    private LocalDateTime endTime;

    /**
     * rtsp或rtmp地址
     */
    @ApiModelProperty(value = "rtsp或rtmp地址")
    @TableField("VIDEO_URL")
    private String videoUrl;

    /**
     * 状态 -1-未启动，0-创建中，1-运行中，2-已结束，3-异常
     */
    @ApiModelProperty(value = "状态;-1-未启动，0-创建中，1-运行中，2-已结束，3-异常")
    @TableField("STATUS")
    private Integer status;

    /**
     * 删除标记;0：否，1：是
     */
    @ApiModelProperty(value = "删除标记;0：否，1：是")
    @TableField("IS_DELETED")
    private Integer isDeleted;

    /**
     * 获得主键
     */
    public Integer getId() {
        return this.id;
    }

    /**
     * 设置主键
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获得主任务ID
     */
    public Integer getFaceTaskId() {
        return this.faceTaskId;
    }

    /**
     * 设置主任务ID
     */
    public void setFaceTaskId(Integer faceTaskId) {
        this.faceTaskId = faceTaskId;
    }

    /**
     * 获得子任务ID;对应业务引擎返回的taskId
     */
    public String getTaskId() {
        return this.taskId;
    }

    /**
     * 设置子任务ID;对应业务引擎返回的taskId
     */
    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }

    /**
     * 获得设备ID
     */
    public List<String> getCameraIds() {
        return cameraIds;
    }

    /**
     * 设置设备ID
     */
    public void setCameraIds(List<String> cameraIds) {
        this.cameraIds = cameraIds;
    }


    /**
     * 获得任务类型;1：实时任务，2：离线视频任务，3：离线文件任务
     */
    public Integer getType() {
        return this.type;
    }

    /**
     * 设置任务类型;1：实时任务，2：离线视频任务，3：离线文件任务
     */
    public void setType(Integer type) {
        this.type = type;
    }

    /**
     * 获得任务开始时间;(实时任务、离线视频任务)
     */
    public LocalDateTime getBeginTime() {
        return this.beginTime;
    }

    /**
     * 设置任务开始时间;(实时任务、离线视频任务)
     */
    public void setBeginTime(LocalDateTime beginTime) {
        this.beginTime = beginTime;
    }

    /**
     * 获得任务结束时间;(实时任务、离线视频任务)
     */
    public LocalDateTime getEndTime() {
        return this.endTime;
    }

    /**
     * 设置任务结束时间;(实时任务、离线视频任务)
     */
    public void setEndTime(LocalDateTime endTime) {
        this.endTime = endTime;
    }

    /**
     * 获得rtsp或rtmp地址
     */
    public String getVideoUrl() {
        return this.videoUrl;
    }

    /**
     * 设置rtsp或rtmp地址
     */
    public void setVideoUrl(String videoUrl) {
        this.videoUrl = videoUrl;
    }

    /**
     * 获得状态 -1-未启动，0-创建中，1-运行中，2-已结束，3-异常
     */
    public Integer getStatus() {
        return this.status;
    }

    /**
     * 设置状态
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 获得删除标记;0：否，1：是
     */
    public Integer getIsDeleted() {
        return this.isDeleted;
    }

    /**
     * 设置删除标记;0：否，1：是
     */
    public void setIsDeleted(Integer isDeleted) {
        this.isDeleted = isDeleted;
    }


    @Override
    public String toString() {
        return "AyStructureTaskSonDto{" +
                "id=" + id +
                ", faceTaskId=" + faceTaskId +
                ", taskId='" + taskId + '\'' +
                ", cameraIds=" + cameraIds +
                ", type=" + type +
                ", beginTime=" + beginTime +
                ", endTime=" + endTime +
                ", videoUrl='" + videoUrl + '\'' +
                ", status=" + status +
                ", isDeleted=" + isDeleted +
                ", createdId=" + createdId +
                ", createdBy='" + createdBy + '\'' +
                ", createdTime=" + createdTime +
                ", updatedId=" + updatedId +
                ", updatedBy='" + updatedBy + '\'' +
                ", updatedTime=" + updatedTime +
                '}';
    }
}
